﻿using System;

namespace Mojo.Widgets
{
    /// <summary>
    /// &lt;div x-mojo-element="Spinner" id="spinnerId" class="spinnerClass" name="spinnerName"&gt;&lt;/div&gt;
    /// </summary>
    public class Spinner
    {
    }

    public class SpinnerAttributes : WidgetsCreateAttributes
    {
        /// <summary>
        /// Optional. Name of model property for this widget instance; default is "spinning".
        /// </summary>
        public string ModelProperty;

        /// <summary>
        /// Optional. Either Mojo.Widget.spinnerLarge or Mojo.Widget.spinnerSmall (small=32 or large=128).
        /// </summary>
        public string SpinnerSize;

        /// <summary>
        /// Optional. Specifies the CSS class name for the background image when you specify a custom.
        /// </summary>
        public string SuperClass;

        /// <summary>
        /// Optional. If the spinner widget is in custom mode, this specifies the number of frames allocated to the pre-main loop animation.
        /// </summary>
        public int StartFrameCount;

        /// <summary>
        /// Optional. If the spinner widget is in custom mode, this specifies the number of frames allocated to the main loop animation.
        /// </summary>
        public int MainFrameCount;

        /// <summary>
        /// Optional. If the spinner widget is in custom mode, this specifies the number of frames allocated to the post-main loop animation.
        /// </summary>
        public int FinalFrameCount;

        /// <summary>
        /// Optional. Explicitly sets the frame height of the animation (small=32 or large=128).
        /// </summary>
        public int FrameHeight;

        /// <summary>
        /// Optional. Number of frames per second.
        /// </summary>
        public int Fps;
    }

    public class SpinnerModel : WidgetsCreateModel
    {
        /// <summary>
        /// Required. Spinner state; true is spinning.
        /// </summary>
        public bool Spinning;	 
    }
}
